// var n;
// var r = cc._decorator;
// var c = (r.ccclass, r.property);
// var l =
//     (r.executeInEditMode,
//     r.disallowMultiple,
//     r.requireComponent,
//     r.menu,
//     (function (e) {
//         function t() {
//             var t = (null !== e && e.apply(this, arguments)) || this;
//             t.key = "framework";
//             t.i18n_string = "";
//             t.i18n_params = [];
//             return t;
//         }
//         __extends(t, e);
//         t.prototype.start = function () {
//             Manager.languageManager.tianjiaHuoShanChuBiaoqian(this.key, this, !0);
//             this.chongzhiZhi();
//         };
//         Object.defineProperty(t.prototype, "string", {
//             get: function () {
//                 return this.i18n_string;
//             },
//             set: function (e) {
//                 this.i18n_string = e;
//                 this.shezhiZuizhongXianshiZhi();
//             },
//             enumerable: !1,
//             configurable: !0
//         });
//         Object.defineProperty(t.prototype, "params", {
//             get: function () {
//                 return this.i18n_params;
//             },
//             set: function (e) {
//                 this.i18n_params = e;
//                 this.shezhiZuizhongXianshiZhi();
//             },
//             enumerable: !1,
//             configurable: !0
//         });
//         t.prototype.init = function (e, t) {
//             this.i18n_string = e;
//             this.i18n_params = t;
//             this.shezhiZuizhongXianshiZhi();
//         };
//         t.prototype.shezhiZuizhongXianshiZhi = function () {
//             var e = this.getComponent(cc.Label);
//             if (cc.isValid(e)) {
//                 e.string = Manager.languageManager.huoqu_biaoqian_neirong(this.key, this.i18n_string, this.i18n_params);
//             }
//         };
//         t.prototype.chongzhiZhi = function () {
//             this.string = this.i18n_string;
//         };
//         t.prototype.onDestroy = function () {
//             Manager.languageManager.tianjiaHuoShanChuBiaoqian(this.key, this, !1);
//         };
//         __decorate(
//             [
//                 c({
//                     visible: !1
//                 })
//             ],
//             t.prototype,
//             "i18n_string",
//             void 0
//         );
//         __decorate(
//             [
//                 c({
//                     visible: !1
//                 })
//             ],
//             t.prototype,
//             "i18n_params",
//             void 0
//         );
//         __decorate(
//             [
//                 c({
//                     type: cc.String
//                 })
//             ],
//             t.prototype,
//             "string",
//             null
//         );
//         __decorate(
//             [
//                 c({
//                     type: [cc.String]
//                 })
//             ],
//             t.prototype,
//             "params",
//             null
//         );
//         return t;
//     })(cc.Component));
// exports.default = l;

// 导入 Cocos Creator 的装饰器模块
const { ccclass, property, executeInEditMode, disallowMultiple, requireComponent, menu } = cc._decorator;

/**
 * 语言管理组件
 * 处理组件的语言和国际化逻辑
 */
@ccclass
@executeInEditMode
@disallowMultiple
@requireComponent(cc.Label)
@menu('YourMenu/LanguageManager')
class LanguageManagerComponent extends cc.Component {
    /** @type {string} 关键字 */
    key = "framework";

    /** @type {string} 国际化字符串 */
    @property({ visible: false })
    i18n_string = "";

    /** @type {Array} 国际化参数 */
    @property({ visible: false })
    i18n_params = [];

    /** 初始化组件 */
    start() {
        Manager.languageManager.tianjiaHuoShanChuBiaoqian(this.key, this, true);
        this.chongzhiZhi();
    }

    /** @type {string} 字符串属性 */
    @property({ type: cc.String })
    get string() {
        return this.i18n_string;
    }
    set string(value) {
        this.i18n_string = value;
        this.shezhiZuizhongXianshiZhi();
    }

    /** @type {Array} 参数属性 */
    @property({ type: [cc.String] })
    get params() {
        return this.i18n_params;
    }
    set params(value) {
        this.i18n_params = value;
        this.shezhiZuizhongXianshiZhi();
    }

    /**
     * 初始化国际化字符串和参数
     * @param {string} str - 国际化字符串
     * @param {Array} params - 参数数组
     */
    init(str, params) {
        this.i18n_string = str;
        this.i18n_params = params;
        this.shezhiZuizhongXianshiZhi();
    }

    /** 设置最终显示的值 */
    shezhiZuizhongXianshiZhi() {
        const labelComponent = this.getComponent(cc.Label);
        if (cc.isValid(labelComponent)) {
            labelComponent.string = Manager.languageManager.huoqu_biaoqian_neirong(this.key, this.i18n_string, this.i18n_params);
        }
    }

    /** 重置初始值 */
    chongzhiZhi() {
        this.string = this.i18n_string;
    }

    /** 销毁时操作 */
    onDestroy() {
        Manager.languageManager.tianjiaHuoShanChuBiaoqian(this.key, this, false);
    }
}

exports.default = LanguageManagerComponent;
